#ifndef librabbitmq_examples_uart_h
#define librabbitmq_examples_uart_h


/* Includes ------------------------------------------------------------------*/

 typedef struct  
{										    
 	uint16_t year;	//年份
	uint8_t month;	//月份
	uint8_t date;	//日期
	uint8_t hour; 	//小时
	uint8_t min; 	//分钟
	uint8_t sec; 	//秒钟
}nmea_utc_time;   

 typedef struct  s_nmea_msg
{										    
	nmea_utc_time utc;			//UTC时间
	uint32_t latitude;				//纬度 分扩大100000倍,实际要除以100000
	uint8_t nshemi;					//北纬/南纬,N:北纬;S:南纬	
	uint32_t longitude;			    //经度 分扩大100000倍,实际要除以100000
	uint8_t ewhemi;					//东经/西经,E:东经;W:西经
	char gpssta;					//GPS状态:'A':定位有效，'V':定位无效			  
	int altitude;			 	//海拔高度,放大了10倍,实际除以10.单位:0.1m	 
	uint16_t speed;					//地面速率,放大了1000倍,实际除以10.单位:0.001公里/小时	
	uint16_t course;					//地面航向
	
}nmea_msg;


/*设备上传数据结构体类型变量*/
typedef struct
{
	uint8_t FT;//通讯网络类型
	char HX[30];//终端硬件ID
	float LO;//经度
	float LA;//纬度
	float SP;//地速
	float HE;//高度
	char CO[10];//方向
	char TE[30];//定位时间
	char RT[30];//收到消息的时间
	char FN[20];//车牌号
	char RE[20];//终端注册号
} UploadMesTypeDef;

/*服务器下发数据结构体类型变量*/
typedef struct
{
	uint8_t warnType;//报警类型
	uint8_t warnTip;//提示方式
	char terminalId[30];//终端硬件ID
	char runway[10];//跑道名称
	char msg[300];//消息内容
	float lng;//经度
	float lat;//纬度
	float height;//高度
	uint16_t createUser;//用户id
	char airport[4];//机场四字码
} IssueMesTypeDef;

enum json_print_formate
{
    JSON_OUT_FORMATE = 0,    /*按 json 格式输出*/
    JSON_OUT_UNFORMATE,      /*以字符串形式输出*/
};
extern char * json_package(enum json_print_formate flag,UploadMesTypeDef *mes);

#endif